Socket
Socket
Sign inDemoInstall

arweave-stream-tx

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

arweave-stream-tx

[![npm](https://img.shields.io/npm/v/arweave-stream-tx)](https://www.npmjs.com/package/arweave-stream-tx) [![tests](https://github.com/CDDelta/arweave-stream-tx/workflows/tests/badge.svg)](https://github.com/CDDelta/arweave-stream-tx/actions?query=workflo


Version published
Weekly downloads
40K
increased by26.39%
Maintainers
1
Weekly downloads
 
Created
Source

arweave-stream-tx

npm tests

Since the release of the v2 transaction format, Arweave theoretically supports data transactions of infinite size. However, common interfaces for creating Arweave transactions such as arweave-js are limited in the size of transactions they can create due to their implementation requiring all transaction data be eagerly loaded into memory. This bounds them to their runtime memory limitations (eg. approx. ~2GB for Node) and prevents complete utility of Arweave's capabilities.

This package introduces async versions of methods provided in arweave-js to allow the creation and upload of Arweave transactions of theoretically infinite size.

This package only works with Node 15+ and does not currently include browser support as browsers and NodeJS do not share a common streams API.

Usage

import Arweave from 'arweave';
import { createTransactionAsync, uploadTransactionAsync } from 'arweave-stream-tx';
import { createReadStream } from 'fs';
import { pipeline } from 'stream/promises';

const arweave = new Arweave({
  host: 'arweave.net',
  protocol: 'https',
  port: 443,
  logging: false,
  timeout: 15000,
});

const filePath = '<file path>';
const wallet = await arweave.wallets.generate();

// Create the transaction.
const tx = await pipeline(createReadStream(filePath), createTransactionAsync({}, arweave, wallet));
await arweave.transactions.sign(tx, wallet);

// Upload it to Arweave.
await pipeline(createReadStream(filePath), uploadTransactionAsync(tx, arweave));

Development

To build the package, run:

npm run build

To deploy the package, run:

npm publish

To execute the tests, run:

npm test

Keywords

FAQs

Package last updated on 25 Nov 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc